package com.fangcun.service.admin;

import java.util.List;

import com.fangcun.bean.admin.user.response.RolePermission;
import com.fangcun.common.exception.ProAffairException;
import com.fangcun.common.exception.ProException;
import com.fangcun.entity.AdminMenuPermission;
import com.fangcun.entity.AdminRole;
import com.fangcun.entity.AdminRolePermission;
import com.fangcun.entity.AdminUserRole;

/**
 * @作者： 陳曉鬆 @时间： 2019年2月25日 - 上午10:18:17 @description：->
 */
public interface PermissionService {

	/**
	 * @作者：陳曉鬆 @时间：2020年5月9日 下午1:51:00 @版本：V1.0 @description：-> 查询出菜单权限列表
	 */
	public List<AdminMenuPermission> getMenuPermissionList(AdminMenuPermission menu) throws ProException;

	/**
	 * @作者：陳曉鬆 @时间：2020年5月9日 下午2:54:44 @版本：V1.0 @description：-> 增加菜单权限
	 */
	public Long insertMenuPermission(AdminMenuPermission menu) throws ProAffairException;

	/**
	 * @作者：陳曉鬆 @时间：2020年5月9日 下午3:15:13 @版本：V1.0 @description：-> 修改菜单权限
	 */
	public void updateMenuPermission(AdminMenuPermission menu) throws ProAffairException;

	/**
	 * @作者：陳曉鬆 @时间：2020年5月9日 下午3:29:37 @版本：V1.0 @description：-> 删除菜单权限
	 */
	public void deleteMenuPermission(Long id) throws ProAffairException;

	/**
	 * @作者：陳曉鬆 @时间：2020年5月9日 下午3:34:59 @版本：V1.0 @description：-> 角色列表
	 */
	public List<AdminRole> getRoleList(AdminRole role) throws ProAffairException;

	/**
	 * @作者：陳曉鬆 @时间：2020年5月9日 下午3:45:35 @版本：V1.0 @description：-> 添加角色
	 */
	public Long insertRole(AdminRole role) throws ProAffairException;

	/**
	 * @作者：陳曉鬆 @时间：2020年5月9日 下午3:56:17 @版本：V1.0 @description：-> 修改角色
	 */
	public void updateRole(AdminRole role) throws ProAffairException;

	/**
	 * @作者：陳曉鬆 @时间：2020年5月9日 下午3:57:03 @版本：V1.0 @description：-> 删除角色
	 */
	public void deleteRole(Long id) throws ProAffairException;

	/**
	 * @作者：陳曉鬆 @时间：2020年5月9日 下午4:08:48 @版本：V1.0 @description：-> 修改用户的角色
	 */
	public void updateUserRole(AdminUserRole userRole) throws ProAffairException;

	/**
	 * @作者：陳曉鬆 @时间：2020年5月9日 下午4:20:00 @版本：V1.0 @description：-> 获取角色拥有权限
	 */
	public List<RolePermission> getRolePermissionList(Long roleId) throws ProAffairException;

	/**
	 * @作者：陳曉鬆 @时间：2020年5月9日 下午4:52:48 @版本：V1.0 @description：-> 添加角色权限
	 */
	public void insertRolePermission(List<AdminRolePermission> rp) throws ProAffairException;

}
